Nachdiplomkurs Java - Java Certification Sommer Semester, Java Messaging Services |
||
---|---|---|
© , Alle Rechte vorbehalten, Josef M. Joller |
Zielpublikum | Software-Entwickler |
Vorkenntnisse | Vertiefte Java-Kenntnisse |
Kursbeginn | Dienstag, 11. September |
Kursdauer | 6 Abende, 11. - 26.9. |
Zeiten | Jeweils Dienstag und Donnerstag,17.30 bis 21.45 Uhr |
KURSZIELE Sie kennen das Java Messaging API und dessen Einsatz in verschiedenen Bereichen KURSINHALTE Skript (PDF) Beispiele (ZIP) KURSINHALTE JAVA MESSAGING SERVICE JMS 1 1.1. EINFÜHRUNG, ZUSAMMENFASSUNG UND ÜBERSICHT 1 1.1.1. Einführung 1 1.1.1.1. Messaging Systeme 3 1.1.1.2. Daten Distributions Architekture 4 1.1.1.2.1. Vollvernetzte Netzwerke 4 1.1.1.2.2. Virtuell vollverknüpfte Netzwerk 4 1.1.1.3. Kommunikations Modelle 5 Punkt-zu-Punkt / Point-to-point 5 1.1.1.3.2. Publish-and-subscribe 6 1.1.1.4. Synchrone und Asynchrone Kommunikation 7 1.1.1.4.1. Traditionelle Kommunikation 7 1.1.1.4.2. JMS Kommunikation 7 1.1.1.5. Administrierte Objekte 8 1.1.1.6. Messages 9 1.1.1.6.1. Struktur 9 1.1.1.6.2. Header Fields 9 1.1.1.6.3. Properties 9 1.1.1.6.4. Transactions 9 1.1.2. Zusammenfassung JMS 11 1.1.3. Übersicht über JMS 11 1.1.3.1. Handelt es sich um ein Mail API? 11 1.1.3.2. Existierende Messaging Systeme 11 1.1.3.3. JMS Zielsetzungen 12 1.1.3.4. JMS Provider 12 1.1.3.5. JMS Messages 12 1.1.3.6. JMS Domains 12 1.1.3.7. Portabilität 13 1.1.3.8. Was umfasst JMS nicht? 13 1.1.4. Was wird von JMS benötigt? 13 1.1.5. Beziehung zu andern JavaSoft Enterprise APIs 14 1.1.5.1. JDBC 14 1.1.5.2. JavaBeans 14 1.1.5.3. Enterprise Java Beans 14 1.1.5.4. Java Transaction (JTA) 14 1.1.5.5. Java Transaction Service (JTS) 14 1.1.5.6. Java Naming und Directory Service (JNDI) 14 1.2. ARCHITEKTUR 15 1.2.1. Übersicht 15 1.2.2. Was ist eine JMS Applikation 15 1.2.3. Administration 15 1.2.4. Zwei Messaging Style 16 1.2.5. JMS Interfaces 16 1.2.6. Entwicklen einer JMS Applikation 17 1.2.6.1. Entwicklung eines JMS Client 17 1.2.7. Security 18 1.2.8. Multi-Threading 18 1.2.9. Triggering von Clients 18 1.2.10. Request/Reply 19 1.3. DAS JMS MESSAGE MODELL 20 1.3.1. Hintergrund 20 1.3.2. Ziele von JMS 20 1.3.3. JMS Messages 20 Message Header Felder 21 1.3.4.1. JMSDestination 22 1.3.4.2. JMSDeliveryMode 22 1.3.4.3. JMSMessageID 22 1.3.4.4. JMSTimestamp 22 1.3.4.5. JMSCorrelationID 22 1.3.4.6. JMSReplyTo 23 1.3.4.7. JMSRedelivered 23 1.3.4.8. JMSType 23 1.3.4.9. JMSExpiration 23 1.3.4.10. JMSPriority 23 1.3.4.11. Wie werden Message Header Werte gesetzt? 23 1.3.4.12. Überschreiben der Message Header Felder 24 1.3.5. Message Eigenschaften 24 1.3.5.1. Property Namen 24 1.3.5.2. Property Werte 24 1.3.5.3. Properties benutzen 24 1.3.5.4. Property Wertkonversion 24 1.3.5.5. Property Werte als Objekte 25 1.3.5.6. Property Iteration 25 1.3.5.7. Zurücksetzen eines Property Wertes einer Message 25 1.3.5.8. Nicht-existierende Properties 25 1.3.5.9. JMS definierte Properties 25 1.3.5.10. Provider-spezifische Properties 27 1.3.6. Message Acknowledgment 27 1.3.7. Das Message Interface 27 1.3.8. Message Selektion 27 1.3.8.1. Message Selector 27 1.3.8.1.1. Message Selector Syntax 28 1.3.8.1.2. Null Werte 30 1.3.8.1.3. Spezielle Bemerkungen 31 1.3.9. Zugriff auf gesendete Messages 31 1.3.10. Werte einer empfangenen Message ändern 31 1.3.11. JMS Message Body 31 1.3.11.1. Löschen eines Message Body 32 1.3.11.2. Read-Only Message Body 32 1.3.11.3. Konversionen von StreamMessage und MapMessage 32 1.3.11.4. Messages für Nicht-JMS Clients 33 1.3.12. Provider Implementationen der JMS Message Interfaces 33 1.4. JMSCOMMONFACILITIES 34 1.4.1. Übersicht 34 1.4.2. Administrierte Objekte 34 1.4.2.1. Destination 35 1.4.2.2. ConnectionFactory 35 1.4.3. Connection 35 1.4.3.1. Authentisierung 37 1.4.3.2. Client Identifier 37 1.4.3.3. Connection Setup 37 1.4.3.4. Unterbrechen eingehender Meldungen 37 1.4.3.5. Schliessen einer Connection 38 1.4.3.6. Sessions 38 1.4.3.7. ConnectionMetaData 38 1.4.3.8. ExceptionListener 38 1.4.4. Session 39 1.4.4.1. Schliessen einer Session 40 1.4.4.2. Kreieren von MessageProducer und MessageConsumer 40 1.4.4.3. Kreieren von TemporaryDestination Objekten 41 1.4.4.4. Kreieren von Destinationen 41 1.4.4.5. Optimierte Message Implementationen 41 1.4.4.6. Konventionen zum Benutzen einer Session 41 1.4.4.7. Transaktionen 41 1.4.4.8. Verteilte Transaktionen 41 1.4.4.9. Multiple Sessions 41 1.4.4.10. Message Ordnung 42 1.4.4.11. Reihenfolge der Message Ankunft 42 1.4.4.12. Ordnung gesendeter Messages 42 1.4.4.13. Message Acknowledgment 42 1.4.4.14. Mehrfaches Abliefern von Messages 42 1.4.4.15. Mehrfache Produktion von Messages 42 1.4.4.16. Serielle Ausführung von Client Code 43 1.4.4.17. Concurrent Message Delivery 43 1.4.5. MessageConsumer 44 1.4.5.1. Synchrone Delivery 44 1.4.5.2. Asynchrone Delivery 44 1.4.6. MessageProducer 45 1.4.7. Message Delivery Modus 46 1.4.8. Message Time-To-Live 47 1.4.9. Exceptions 47 1.4.10. Reliability / Zuverlässigkeit 47 JMS POINT-TO-POINT MODELL 48 1.5.1. Übersicht 48 1.5.2. Queue Management 48 1.5.3. Queue 49 1.5.4. TemporaryQueue 49 1.5.5. QueueConnectionFactory 49 QueueConnection 49 QueueSession 50 1.5.8. QueueReceiver 50 QueueSender 50 1.5.10. QueueBrowser 51 1.5.11. QueueRequestor 51 1.5.12. Zuverlässigkeit / Reliability 51 JMS PUBLISH/SUBSCRIBE MODELL 52 Übersicht 52 1.6.2. Pub/Sub Latenz 53 1.6.3. Dauerhafte Subskription 53 1.6.4. Topic Management 53 1.6.5. Topic 53 1.6.6. TemporaryTopic 54 TopicConnectionFactory 54 TopicConnection 54 1.6.9. TopicSession 54 1.6.10. TopicPublisher 55 1.6.11. TopicSubscriber 55 1.6.11.1. Durable TopicSubscriber 55 1.6.12. Recovery und Redelivery 56 1.6.13. Administration von Subskriptionen 56 1.6.14. TopicRequestor 56 1.6.15. Reliability / Zuverlässigkeit 57 1.7. API ÜBERSICHT 58 1.7.1. Klassen Hierarchie 58 1.7.2. Interface Hierarchie 58 1.8. KOMMERZIELLE ANBIETER 60 1.9. ENTWICKLUNG VON APPLIKATIONEN 61 1.10. EINFÜHRENDE BEISPIELE 65 1.10.1. Ein einfaches Point-to-Point Beispiel 66 1.10.1.1. Schreiben des Client Programms 66 1.10.1.2. Einfaches Queue Sender Programm 67 1.10.1.3. Einfacher Message Empfänger 69 1.10.1.4. Übersetzen der Clients 71 1.10.1.5. Starten des JMS Providers 72 1.10.1.6. Kreieren der JMS administrierten Objekte 73 1.10.1.7. Starten der PTP Clients 73 1.10.1.8. Löschen der Warteschlange 76 1.10.2. Ein einfaches Publish / Subscribe Beispiel 77 1.10.2.1. Schreiben der Publisher und Subscriber Programme 77 1.10.2.1.1. Der Publisher 78 1.10.2.1.2. Der Subscriber 81 1.10.2.2. Übersetzen der Pub/Sub Clients 84 1.10.2.3. Starten des Providers - J2EE 84 1.10.2.4. Kreieren des administrierten Objekts (Topic) 84 1.10.2.5. Starten des Subscribers 85 1.10.2.6. Starten des Publishers 86 1.10.2.7. Löschen des Topics 86 1.11. WEITERE BEISPIELE 87 1.11.1. Connections 87 1.11.2. Durability 93 1.11.3. Persistence 100 1.11.4. Producer-Consumer 106 1.11.5. Selectors 114 1.11.6. Simplechat 121 1.11.7. Transactions 122